home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Creative Computers
/
Creative Computers CD-ROM, Volume 1 (Legendary Design Technologies, Inc.)(1994).iso
/
shareware
/
fractals
/
zplot
/
zplot.docs
< prev
next >
Wrap
Text File
|
1994-11-17
|
23KB
|
437 lines
>>>>> ZPlot 1.3d, ©1990 by Terry W. Gintz <<<<<
ZPlot graphs formulas based on 4-D complex number planes. ZPlot currently
supports the Mandelbrot set, Julia sets, and Phoenix curves, with over 500
mapping variations. The math functions supported include sin(z), sinh(z),
z^z, e^z, z^n, sqrt(z), cos(z), cosh(z), tan(z), tanh(z), log(z), ln(z) and
n^z. Both lo-res(320X200) and hi-res(640X400) plots are possible.
Up to two formulas for z using the above functions may be plotted, using
traditional rules for generating Mandelbrot sets (Benoit B. Mandelbrot) and
Julia sets (G. Julia.) Also, there are mapping options that use non-traditional
methods, such as the epsilon-cross method (Clifford A. Pickover), and
IFS (Michael Barnsley). In addition, since the formula parser is an
interpreter, with its inherent lack of speed, over thirty 'popular' formulas
have been hard-coded to reduce graphing time by 40 to 60 percent. Several
of the built-in formulas are actually capable of producing graphs that the
program could not generate any other way, such as applying the mandelbrot
set to Newton's method for solving quadratic equations.
ZPlot1.3d adds three-dimensional and formula mapping options to ZPlot1.0.
There are also 3 additional color-scaling options in ZPlot 1.3d.
About the windows and menus:
The main or Project menu:
"New Plot" turns on zoom mode, so that detail of the the current plot may
be magnified. Using the mouse, you define a rectangular area, by clicking
twice at opposite corners of the area. The program will begin a new plot at
the new coordinates. Clicking with the left mouse button stops the plot at
any point before the plotting is finished. You may zoom in by defining a
box inside the current drawing area. You zoom out by drawing a box outside
the current drawing area. The outer zoom limits are between -99.99999 and
99.99999. The precision is that of fast floating point (32 bits).
"New Formula" opens the new formula window (see below).
"Continue Draw" continues a plot that was aborted early. The plot is
restarted at the beginning of the last row drawn.
"Save Function" saves all pertinent information about the current plot,
plus the menu settings, and an IFF file for the current screen. You should
save a function before changing the plot type with the Type menu. Pressing
'Q' will quick save the current function to 'RAM:tempfunction' (memory
permitting). This is useful when you want to use a mandelbrot set as a map
for drawing julia curves.
"Load Function" loads a function previously saved by ZPlot, updates menu
settings and loads the IFF file for the saved screen. If the plot was
aborted before finishing, it will be continued at the last row drawn. (If the
plot type was changed before saving the function, the screen will be cleared
and a new plot begun.) Pressing 'R' will recall a function saved with the
quick save option.
"Quit" exits the program.
The Plot Flags menu:
The first two flags determine the basic plot type. This can be
Mandelbrot or Julia. Mandelbrots have inputs of Zx and Zy, while Julias
have inputs of Cx and Cy. Zx and Zy correspond to the min/max values set
in the New Formula window. Cx and Cy correspond to the complex constant
entered in the New Formula window. With mandelbrots, Cx and Cy represent
the initial value of Z before the first iteration. This can be changed to
produce non-symmetrical mandelbrots, or mandelbrots based on formulas whose
inital value of Z must be non-zero to generate anything (such as
f(z)=cz(1-z) where z0=0.5).
The next five flags determine the branch limit, where iteration of the
function stops and points are plotted. This can be based on the real part
of Z, the imaginary part of Z, the absolute value of the real part of Z,
the absolute value of the imaginary part of Z, or usually, the absolute
value of Z. Different trigonometric functions require different branch
limits to accurately map the complex sets.
The remaining flags have to do with how the points are color-scaled, or
determining which point is part of the complex set being mapped. These are
optional methods to vary the mapping of the sets, and this is where some
truly spectacular effects can be acheived.
Biomorphs test the real Z and imaginary Z values after breaking
the iteration loop. If the absolute value of either is less than the preset
zlimit, the point is mapped as part of the set. This method prduces
biological-like structures in the complex plane.
The epsilon-cross method breaks the iteration loop only if the absolute
value of Z-real or Z-imaginary is less than or equal to the zlimit/1000.
Other points are mapped at the time they blow up(exceed the zlimit.) This
produces hair-like structures that branch wildly from the complex set
boundaries.
Level-curves map the set points based on how small the value of Z gets.
This allows the inside of the complex set, or the tenacles of the biomorph,
to be color-scaled. There are two possible level curves. Press '2' to
enable the second-type level curve (if the level option has been previously
chosen). Press '1' to re-enable the first-type level curve. The default
level curve produces colored bands on the inside of the complex set. The
second level curve produces circular patterns inside the complex set.
The Set Only flag plots all non-set points in the backgound color.
The Newton flag is used to map the zeros of a particular function after
the Newton transformation has been applied to the function. The program
doesn't make the transformation (z-(f(z)/f'(z)), where ' stands for d/dx),
but it does allow you to map up to 6 attractors, and set the limit for
convergence to the attractors. Each time the newton flag is set, a window
is opened to allow you to enter up to 6 attractors (or repellers) of the
function, and how close z must come (the limit) to be considered in contact
with the attractor. This flag is mutually exclusive with the Level-Curve,
Biomorph and Epsilon flags, and automatically excludes all points that don't
converge to one of the attractors set, within the preset number of
iterations. The points that converge are colored in one of up-to-6 possible
colors evenly-spaced in the current palette. The non-converging points
are mapped with the set color. Due to rounding errors in the fast-floating
point, not all points converge when all possible attractors are used,
even after 1000 iterations. Non-converging points show up typically as
round areas or spots. Generally, a limit of 50 iterations gives optimum
results. The Newton transformation is normally used with Julia sets, as
the attractors (solutions of the formula) can be calculated beforehand.
Its also possible to explore the Mandelbrot set applied to Newton's method,
but only with some of the built-in formulas mentioned above. It this case,
the solutions of the formula for every point on the screen have to be
calculated separately, which the program does in a dedicated routine.
The Renormalization flag uses a hierarchical lattice transformation to map
magnetic phases, with either the Julia set or Mandelbrot set as the iterated
function. (Consult The Beauty of Fractals by Pietgen and Richter for
appropriate formulas to use.) Basically, the algorithm checks orbits for
convergence to 1 or infinity, and scales these points in different colors.
This flag is mutually exclusive with the Newton, Biomorph, Level-Curve and
Set Only flags.
The Decomposition flag does a binary decomposition on points that do not fit
the complex set. Excludes the Set Only flag. (Consult The Beauty of
Fractals for an explanation of this technique.)
The Phoenix flag rotates the planes, so that the imaginary plane is mapped
horizontally and the real plane is mapped vertically. A graded color
scaling is also enabled (instead of the default modulo scaling). This
option is normally used for mapping Phoenix curves (Shigehiro Ushiki), which
are julia-related curves based on the formula f(z+1)=z²+p+qz. 'p' and 'q'
are constants, and the 'z' term of 'qz' is actually the value of z^n-1, or
the previous value of z before the current iteration. 'zn'